package www.worq.model.dao;

import java.sql.SQLException;
import java.util.ArrayList;

import www.worq.controller.beans.inmuebleBean;

public class inmuebleDao extends oreqDao {

	public ArrayList<inmuebleBean> getINMUEBLES() throws SQLException {
		ArrayList<inmuebleBean> inmuebles = new ArrayList<inmuebleBean>();
		try {
			StringBuilder query = new StringBuilder();
			query.append("Select * from inmueble");
			conn = this.getConnectionMYSQL();
			ps = conn.prepareStatement(query.toString());
			rs = ps.executeQuery();
			System.out
					.println("dao.inmuebles.getINMUEBLES.Ejecutado----------> "
							+ query.toString());

			while (rs.next()) {
				inmuebleBean inmueble = new inmuebleBean();
				inmueble.setId_inmueble(rs.getInt(1));
				inmueble.setCve_catastral(rs.getString(2));
				inmueble.setNotaria(rs.getString(3));
				inmueble.setPropietario(rs.getString(4));
				inmueble.setActa(rs.getString(5));
				inmueble.setFecha(rs.getString(6));
				inmueble.setMedidas(rs.getString(7));
				inmueble.setColindancias(rs.getString(8));
				inmueble.setSuperficies(rs.getString(9));
				inmueble.setTipo(rs.getString(10));
				inmueble.setDireccion(rs.getString(11));
				inmuebles.add(inmueble);
			}
			System.out.println("dao.inmuebles.getINMUEBLES----------> Cargado");
		} catch (Exception e) {
			System.out.println("inmueblesDao...Error..." + e.getMessage());
		} finally {
			close(conn);
			close(ps);
			close(rs);
		}
		return inmuebles;
	}
	public void getINMUEBLE(inmuebleBean inmueble) throws SQLException {
		try {
			StringBuilder query = new StringBuilder();
			query.append("Select * from inmueble where cve_catastral='").append(inmueble.getCve_catastral()).append("'");
			conn = this.getConnectionMYSQL();
			ps = conn.prepareStatement(query.toString());
			rs = ps.executeQuery();
			System.out
					.println("dao.inmuebles.getINMUEBLES.Ejecutado----------> "
							+ query.toString());

			while (rs.next()) {
				inmueble.setId_inmueble(rs.getInt(1));
				inmueble.setCve_catastral(rs.getString(2));
				inmueble.setNotaria(rs.getString(3));
				inmueble.setPropietario(rs.getString(4));
				inmueble.setActa(rs.getString(5));
				inmueble.setFecha(rs.getString(6));
				inmueble.setMedidas(rs.getString(7));
				inmueble.setColindancias(rs.getString(8));
				inmueble.setSuperficies(rs.getString(9));
				inmueble.setTipo(rs.getString(10));
				inmueble.setDireccion(rs.getString(11));
			}
			System.out.println("dao.inmuebles.getINMUEBLES----------> Cargado");
		} catch (Exception e) {
			System.out.println("inmueblesDao...Error..." + e.getMessage());
		} finally {
			close(conn);
			close(ps);
			close(rs);
		}
	}


	public int nextId() {
		int id = 0;
		try {
			StringBuilder query = new StringBuilder();
			query.append("Select id_inmueble from inmueble");
			conn = this.getConnectionMYSQL();
			ps = conn.prepareStatement(query.toString());
			rs = ps.executeQuery();
			System.out.println("dao.inmuebles.nextId.Ejecutado----------> "
					+ query.toString());

			while (rs.next()) {
				if (id < rs.getInt(1)) {
					id = rs.getInt(1);
				}
			}
			System.out.println("dao.inmuebles.nextId----------> Cargado");
		} catch (Exception e) {
			System.out.println("inmueblesDao...Error..." + e.getMessage());
		} finally {
			close(conn);
			close(ps);
			close(rs);
		}
		return id + 1;
	}

	public void insertINMUEBLE(inmuebleBean bean) throws Exception {
		try {
			StringBuilder query = new StringBuilder();
			conn = this.getConnectionMYSQL();

			query.append("INSERT INTO inmueble ")
					.append("(id_inmueble,cve_catastral,notaria,rfc,acta,fecha,medidas,colindancias,superficies,tipo,direccion) ")
					.append("values (").append(bean.getId_inmueble())
					.append(",'").append(bean.getCve_catastral()).append("','")
					.append(bean.getNotaria()).append("','")
					.append(bean.getPropietario()).append("','")
					.append(bean.getActa()).append("','")
					.append(bean.getFecha()).append("','")
					.append(bean.getMedidas()).append("','")
					.append(bean.getColindancias()).append("','")
					.append(bean.getSuperficies()).append("','")
					.append(bean.getTipo()).append("','")
					.append(bean.getDireccion()).append("');");

			st = conn.createStatement();
			st.executeUpdate(query.toString());
			System.out
					.println("dao.inmueble.insertINMUEBLE.Ejecutado----------> "
							+ query.toString());
			System.out
					.println("dao.inmueble.insertINMUEBLE----------> insertado");

		} catch (SQLException error) {
			throw new Exception(error.getMessage());
		} catch (Exception error) {
			throw new Exception(error.getMessage());
		} finally {
			close(conn);
			close(st);
		}
	}

	public void deleteINMUEBLE(inmuebleBean bean) throws Exception {
		try {
			StringBuilder query = new StringBuilder();
			conn = this.getConnectionMYSQL();

			query.append("DELETE FROM inmueble where id_inmueble=").append(
					bean.getId_inmueble());

			st = conn.createStatement();
			st.executeUpdate(query.toString());
			System.out
					.println("dao.inmueble.deleteINMUEBLE.Ejecutado----------> "
							+ query.toString());
			System.out
					.println("dao.inmueble.deleteINMUEBLE----------> eliminado");

		} catch (SQLException error) {
			throw new Exception(error.getMessage());
		} catch (Exception error) {
			throw new Exception(error.getMessage());
		} finally {
			close(conn);
			close(st);
		}
	}

	public void updateINMUEBLE(inmuebleBean bean) throws Exception {
		try {
			StringBuilder query = new StringBuilder();
			conn = this.getConnectionMYSQL();

			query.append("UPDATE inmueble SET ").append("cve_catastral='")
					.append(bean.getCve_catastral()).append("',notaria='")
					.append(bean.getNotaria()).append("',rfc='")
					.append(bean.getPropietario()).append("',acta='")
					.append(bean.getActa()).append("',fecha='")
					.append(bean.getFecha()).append("',medidas='")
					.append(bean.getMedidas()).append("',colindancias='")
					.append(bean.getColindancias()).append("',superficies='")
					.append(bean.getSuperficies()).append("',tipo='")
					.append(bean.getTipo()).append("',direccion='")
					.append(bean.getDireccion()).append("' where id_inmueble=")
					.append(bean.getId_inmueble()).append(";");

			st = conn.createStatement();
			st.executeUpdate(query.toString());
			System.out
					.println("dao.inmueble.updateINMUEBLE.Ejecutado----------> "
							+ query.toString());
			System.out
					.println("dao.inmueble.updateINMUEBLE----------> actualizado");

		} catch (SQLException error) {
			throw new Exception(error.getMessage());
		} catch (Exception error) {
			throw new Exception(error.getMessage());
		} finally {
			close(conn);
			close(st);
		}
	}
}
